#include <stdio.h>
#include <stdlib.h>

/*
字符数组更为特殊，它的第n-1个元素是法定的'\0'，能存储的有效字符为n-1个。


*/
int main()
{
    int i;
    char a[] = "abcde", b[6];
    for (i = 0; i < 2; i++)
        b[i] = a[i];
    /*
    定义的字符数组是a[6]，它具有6个元素，只是第6个元素是结束符'\0'。
    这个结束符必须复制到字符数组b不然它没有结束符，造成语句
    printf(b);
    除了输出“abcde”之外，还将其后的字符输出
    （如果不是字符代码，则输出乱码），直到遇到空格才能结束。
    */
    printf(b); // ab@
    printf("\n");
    
    for (i = 0; i < 5; i++)
        b[i] = a[i];
    printf(b); // abcde
    printf("\n");
    system("pause");
    return 0;
}